Recipe Flags
WHAT ARE FLAGS ?
Flags are the stuff that make a recipe very special! You can add various features to a recipe by using flags.
For examples see advanced recipes.html.
USING FLAGS
Flags can be added in 4 'zones':
- at the beginning of the file - which are copied to all recipes from that file.
- after recipe type (CRAFT, COMBINE, etc) - where they affect that specific recipe, you may even overwrite file flags for that specific recipe!
- after recipe ingredients - to apply basic item requirements to a specific ingredient.
- after recipe's individual results - to apply flags for the result items.
ABOUT ARGUMENTS
Flags have arguments but not always are they all required.
Arguments enclosed between < and > are required and those enclosed between [ and ] are optional.
Some arguments may have 'or false', that means you can just type false in there to make it do something special (most likely disable the flag or a feature)
ALIASES
They're just other names for the flag that you can use, they have no special effect if used, only for your preference.
^ Contents
@addtobook <book id> [volume <num>]
Recipe
This flag is a shortcut for quickly adding recipe(s) to books.
Using this flag more than once will overwrite the previous one.
The book must exist first, you must create it, see 'recipe books.html' for how to do that.
The '<book id>' argument must be an existing book's ID/filename, case insensitive.
Optionally you can specify which volume to add it to, otherwise it will be added in its 'recipes' node and left to be added automatically to the latest volume with free slots.
NOTE: To properly remove recipes from books you must first remove this flag (to avoid re-adding them) then go to the book's YML file and remove them from there as well.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@addtobook testing book // matches a 'Testing Book.yml' book for example
@addtobook random stuff volume 3 // matches a 'Random Stuff.yml' with volume 3 book for example
Aliases: @recipebook
^ Contents
@applyenchantment <arguments>
Result
Applies the enchantments from books onto the result
If you want to store enchantments in an enchanted book, use: @storeenchantment
Using this flag more than once will overwrite the previous one.
As '<arguments>' you must define at least one feature to copy from the ingredient to the result.
Arguments can be one or more of the following, separated by | character:
ingredientaction <action> = (default largest) merge action for all of the ingredients
resultaction <action> = (default largest) merge action applied to the result
ignorelevel = Ignore enchantment level restrictions
maxlevel <level> = Restrict the maximum level
onlybooks = Only copies enchantments from Enchanted Books. Without this, all item enchantments will be copied
onlyitems = Only copies enchantments from items with enchantments. Without this, all enchanted books will be copied as well
onlybooks and onlyitems are mutually exclusive. If you use one, the other is set to false. Using both will set the last defined.
Actions include:
smallest = Use the smallest of the two enchantments if two are merged (Sharpness I + Sharpness III = Sharpness I)
largest = Use the largest of the two enchantments if two are merged (Sharpness I + Sharpness III = Sharpness III)
combine = Add the enchantment levels together (Sharpness I + Sharpness III = Sharpness IV)
anvil = Combine enchantments similar to anvils (Sharpness I + Sharpness II = Sharpness II) and (Sharpness II + Sharpness II = Sharpness III)
Setting to 'false' or 'remove' will disable the flag.
Examples:
@applyenchantment
@applyenchantment resultaction combine // Combines the levels with the resulting item's enchants
@applyenchantment ingredientaction combine | ignorelevels | onlybooks // Combines all ingredients levels from books while allowing higher than vanilla allowed enchants
Aliases: @applyenchant, @applyenchantments, @applyenchants
^ Contents
@axolotlbucketitem <variant>
IngredientResult
Customize an axolotl bucket item
<variant> is required and defines the variant of the axolotl in the bucket
values: lucy, wild, gold, cyan, blue
Setting to 'false' or 'remove' will disable the flag.
Examples:
@axolotlbucketitem blue
Aliases: @axolotlbucket
^ Contents
@banneritem | [pattern] <color> | [...]
IngredientResult
Creates a custom banner
Using this flag more than once will overwrite the previous one.
Patterns can be added after the base color and are separated by the '|' character
[pattern] is the banner pattern type
Values: name index.html#bannerpattern
<color> is required for each pattern, color values are the same as <basecolor>
Multiple patterns can be added
Setting to 'false' or 'remove' will disable the flag.
Examples:
@banneritem black
@banneritem red | circle blue | skull yellow
@banneritem green | half_horizontal yellow | circle orange
Aliases: @banner
^ Contents
@biome <types> | [fail message]
RecipeResult
Sets the biome required to allow crafting.
Using this flag more than once will overwrite the previous one.
For '<types>' you can list the biomes you want to allow or disallow.
It needs at least one biome name and you can add more separated by , character.
Also you can disallow biomes by prefixing them with ! character.
Biomes: name index.html#biomes
Setting to 'false' or 'remove' will disable the flag.
Examples:
@biome jungle, bamboo_jungle, sparse_jungle
@biome !dripstone_caves, !lush_caves
^ Contents
@blockpowered [arguments]
RecipeResult
Requires the workbench or furnace block to be powered by redstone.
Optionally you can use the following arguments separated by | character and in any order:
indirect = check for indirect redstone power, through other blocks.
failmsg <message> = overwrite the failure message.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@blockpowered
@blockpowered failmsg <red><bold>YOU HAVE NO (indirect) POWAAH!!! | indirect
Aliases: @poweredblock, @blockpower, @redstonepowered
^ Contents
@bookitem title [text]
@bookitem author [text]
@bookitem generation <generation>
@bookitem addpage [text]
IngredientResult
Changes book's contents.
Using this flag more than once will configure the same flag.
Supports colors and format (e.g. <red>, <blue>, &4, &F, etc).
Use 'title <text>' and 'author <text>' only on written books, it doesn't work on book and quill therefore they're optional.
Title and author must not exceed 64 characters, colors included (2 chars each).
Use generation <generation> to set the book's generation. Defaults to ORIGINAL
<generation> values: original, copy_of_original, copy_of_copy, tattered
Use 'addpage <text>' to add a new page, the text can contain \n to add new lines to it, but it mainly word-wraps itself.
Page contents must not exceed 256 characters, colors (2 chars each) and new line (1 char each) included.
Optionally you can leave the text blank to add a blank page.
Supported items: written book, book and quill.
Allows quotes to prevent spaces being trimmed.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@bookitem title The Art of Stealing
@bookitem author Gray Fox
@bookitem generation COPY_OF_ORIGINAL
@bookitem addpage <bold>O<reset>nce upon a time...
@bookitem addpage // added blank page
@bookitem addpage \n\n\n\n<italic> The End.
@bookitem title " The Art of Stealing " // Quotes at the beginning and end will be removed, but spaces will be kept.
@bookitem author " Gray Fox "
@bookitem addpage " <bold>O<reset>nce upon a time... "
Aliases: @book
^ Contents
@broadcast <text> | [permission]
RecipeResult
Prints a chat message for all online players.
Using this flag more than once will overwrite the previous message.
Optionally you can set a permission node that will define who sees the message.
Colors are supported (<red>, &5, etc).
You can also use these variables:
{player} = crafter's name or '(nobody)' if not available
{playerdisplay} = crafter's display name or '(nobody)' if not available
{result} = the result item name or '(nothing)' if recipe failed.
{recipename} = recipe's custom or autogenerated name or '(unknown)' if not available
{recipetype} = recipe type or '(unknown)' if not available
{inventorytype} = inventory type or '(unknown)' if not available
{world} = world name of event location or '(unknown)' if not available
{x} = event location's X coord or '(?)' if not available
{y} = event location's Y coord or '(?)' if not available
{z} = event location's Z coord or '(?)' if not available
Relative positions are supported: {x-1},{y+7},{z+12}
{rand #1-#2} = output a random integer between #1 and #2. Example: {rand 5-10} will output an integer from 5-10
{rand #1-#2, #3} = output a random number between #1 and #2, with decimal places of #3. Example: {rand 1.5-2.5, 2} will output a number from 1.50 to 2.50
{rand n} = reuse a random output, where n is the nth {rand} in a recipe used excluding this format
Allows quotes to prevent spaces being trimmed.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@broadcast {playerdisplay} <green>crafted something!
@broadcast '{player}' crafted '{recipename}' at {world}: {x}, {y}, {z} | ranks.admins
@broadcast " Extra space " // Quotes at the beginning and end will be removed, but spaces will be kept.
Aliases: @announce, @msgall
^ Contents
@bundleitem <item>[:data][:amount]
@bundleitem item:<name>
IngredientResult
{flag} Adds a stack of items to a bundle.
This flag can be used more than once to add more items to bundle.
You can use a predefined item from an item recipe:
Format = item:<name>
<name> = The name of an item recipe defined before this flag.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@bundleitem dirt:0:40 // Add 40 dirt
@bundleitem diamond_sword:1500 // Add an almost destroyed diamond_sword
@bundleitem item:test sword // Will use the item from the 'test sword' recipe, assuming it's defined.
Aliases: @bundle
^ Contents
@cloneingredient <arguments>
Result
Clones the ingredient matching material of the result used on.
Using this flag more than once will overwrite the previous one.
As '<arguments>' you must define at least one feature to copy from the ingredient to the result.
Arguments can be one or more of the following, separated by | character:
data [<mod> <value>] = copy data value with optional modifier, <mod> can be +,-,/,* or % as math operator and <value> a number.
amount [<mod> <value>] = copy stack amount with optional modifier, <mod> can be +,-,/,* or % as math operator and <value> a number.
enchants = copies the enchantments.
name = copies the custom item name.
lore [number or text or regex:pattern] = copies all the custom item lore/description unless conditions are added to copy specific lines.
[number] = copies only the lore on line number. More lore conditions can be added to copy more lines
[text] = copies any lore lines that contain the text
[regex:pattern] = copies any lore lines that match the regex pattern. Escape for '|' is a double '||'. Any double pipes will be converted back to single pipes for regex parsing.
special = copies item's special feature like leather armor color, firework effects, book contents, skull owner, etc.
allmeta = copies enchants, name, lore and special.
all = copies entire item (data, amount, enchants, name, lore, special)
allowedtypes <type, ...> = set material types other than the result type that can be cloned from
NOTE: If the result's material is present in the ingredients more than once, when using the recipe it will clone the details of first item in the grid.
To apply conditions for ingredients (ranged data values, specific names, etc) then you can use the @ingredientcondition flag too.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@cloneingredient data // just copy data value
@cloneingredient data +2 // copy data value and add 2 to it
@cloneingredient amount * 2 // copy amount and multiply it by 2
@cloneingredient data % 2 // get the remainder from data divided by 2.
@cloneingredient data | amount | lore // only copy these things
@cloneingredient all // copy entire ingredient
@cloneingredient all | allowedtypes stone_axe, iron_axe // copy ingredients from the first ingredient that matches a stone axe, iron axe, or the result type
Aliases: @clone, @copy, @copyingredient
^ Contents
@command <text or false>
RecipeResult
Executes the command when recipe is successful.
This flag can be used more than once to add more commands to the list.
Commands are executed server-side, if you add / prefix it will execute the command on the crafter.
You can also use these variables:
{player} = crafter's name or '(nobody)' if not available
{playerdisplay} = crafter's display name or '(nobody)' if not available
{result} = the result item name or '(nothing)' if recipe failed.
{recipename} = recipe's custom or autogenerated name or '(unknown)' if not available
{recipetype} = recipe type or '(unknown)' if not available
{inventorytype} = inventory type or '(unknown)' if not available
{world} = world name of event location or '(unknown)' if not available
{x} = event location's X coord or '(?)' if not available
{y} = event location's Y coord or '(?)' if not available
{z} = event location's Z coord or '(?)' if not available
Relative positions are supported: {x-1},{y+7},{z+12}
{rand #1-#2} = output a random integer between #1 and #2. Example: {rand 5-10} will output an integer from 5-10
{rand #1-#2, #3} = output a random number between #1 and #2, with decimal places of #3. Example: {rand 1.5-2.5, 2} will output a number from 1.50 to 2.50
{rand n} = reuse a random output, where n is the nth {rand} in a recipe used excluding this format
Setting to 'false' or 'remove' will disable the flag.
Examples:
@command /say I crafted {result}!
@command kick {player}
Aliases: @cmd, @commands
^ Contents
@compassitem <worldName> <x> <y> <z> | [requiresLodestone]
IngredientResult
Sets the position that a compass points to.
<worldName> is the name of the world you want to compass to work in.
<x> <y> <z> are the x, y, and z coordinates you want to point to. <y> being the vertical only matters if you set requiresLodestone option to true
The following variables may also be used
{world} = world name of event location or '(unknown)' if not available
{x} = event location's X coord
{y} = event location's Y coord
{z} = event location's Z coord
Relative positions are supported: {x-1},{y+7},{z+12}
{rand #1-#2} = output a random integer between #1 and #2. Example: {rand 5-10} will output an integer from 5-10
{rand #1-#2, #3} = output a random number between #1 and #2, with decimal places of #3. Example: {rand 1.5-2.5, 2} will output a number from 1.50 to 2.50
{rand n} = reuse a random output, where n is the nth {rand} in a recipe used excluding this format
[requiresLodestone] is optional and defaults to false:
Requires a lodestone at the location set
values: true or false
Specific items: compass.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@compassitem world 100 65 200 // Will track this location without a lodestone
@compassitem world 100 65 200 | true // Requires a lodestone to be at x=100, y=65, z=200 for the compass to track this location
Aliases: @compass
^ Contents
@cooldown <number>[suffix] | [arguments]
@cooldown false
RecipeResult
Sets a cooldown time for crafting a recipe or result.
Once a recipe/result is used, the crafter can not craft it again for the specified amount of time.
If set on a result, the result will be unavailable to the crafter for the cooldown time but the rest of results and the recipe will work as before.
NOTE: cooldowns will be saved on server shutdown to maintain longer cooldowns.
The <number> argument must be a number, by default it's seconds.
The [suffix] argument defines what the <number> value is scaled in, values for suffix can be:
s = for seconds (default)
m = for minutes
h = for hours
d = for days
You can also use float values like '0.5m' to get 30 seconds.
Optionally you can add some arguments separated by | character, those being:
global = make the cooldown global instead of per-player.
msg <text> = overwrites the information message; false to hide; supports colors; use {time} variable to display the new cooldown time.
failmsg <text> = overwrites the failure message; false to hide; supports colors; use {time} variable to display the remaining time.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@cooldown 30
@cooldown 30s // exactly the same as the previous flag
@cooldown 1.75m | failmsg <red>Usable in: {time} // 1 minute and 45 seconds or 1 minute and 75% of a minute.
@cooldown .5h | global | failmsg <red>Someone used this recently, wait: {time} | msg <yellow>Cooldown time: {time} // half an hour
Aliases: @cooltime
^ Contents
@crossbowitem <item>[:data][:amount]
@crossbowitem item:<name>
IngredientResult
{flag} Adds a charged projectile to a crossbow.
This flag can be used more than once to add more charged projectiles.
NOTE: The item must be a valid crossbow projectile, such as an arrow or firework rocket.
You can use a predefined item from an item recipe:
Format = item:<name>
<name> = The name of an item recipe defined before this flag.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@crossbowitem arrow:0:40 // Add 40 arrows
@crossbowitem firework_rocket // Adds a firework rocket
@crossbowitem item:customrocket // Will use the item from the 'customrocket' recipe, assuming it's defined.
Aliases: @crossbow
^ Contents
@custommodeldata <number>
IngredientResult
Changes result's custom model data.
Used with custom datapacks
Setting to 'false' or 'remove' will disable the flag.
Examples:
@custommodeldata 7
@custommodeldata 1234567
Aliases: @modeldata
^ Contents
@displayname <text>
@displayname <text> | display
@displayname <text> | result
RecipeIngredientResult
Changes result's display name.
Supports colors (e.g. <red>, <blue>, &4, &F, etc).
You can also use these variables:
{player} = crafter's name or '(nobody)' if not available
{playerdisplay} = crafter's display name or '(nobody)' if not available
{result} = the result item name or '(nothing)' if recipe failed.
{recipename} = recipe's custom or autogenerated name or '(unknown)' if not available
{recipetype} = recipe type or '(unknown)' if not available
{inventorytype} = inventory type or '(unknown)' if not available
{world} = world name of event location or '(unknown)' if not available
{x} = event location's X coord or '(?)' if not available
{y} = event location's Y coord or '(?)' if not available
{z} = event location's Z coord or '(?)' if not available
Relative positions are supported: {x-1},{y+7},{z+12}
{rand #1-#2} = output a random integer between #1 and #2. Example: {rand 5-10} will output an integer from 5-10
{rand #1-#2, #3} = output a random number between #1 and #2, with decimal places of #3. Example: {rand 1.5-2.5, 2} will output a number from 1.50 to 2.50
{rand n} = reuse a random output, where n is the nth {rand} in a recipe used excluding this format
Allows quotes to prevent spaces being trimmed.
Optional Arguments:
display = only show on the displayed item when preparing to craft (only relevant to craft/combine recipes)
result = only show on the result, but hide from the prepared result
Default behavior with neither of these arguments is to display in both locations
Setting to 'false' or 'remove' will disable the flag.
Examples:
@displayname <light_purple>Weird Item
@displayname <yellow>{player}'s Sword
@displayname " Extra space " // Quotes at the beginning and end will be removed, but spaces will be kept.
Aliases: @name
^ Contents
@displayresult <item or first> | [silentfail]
@displayresult item:<name> | [silentfail]
Recipe
Sets the display result of the recipe.
Using this flag more than once will overwrite the previous message.
As 'item' argument you can define an item like in a result, material:data:amount.
Or you can set the item as 'first' to use the first display result available, very useful for multiple results having @ingredientcondition flag on them.
Optionally, using 'silentfail' argument you can make the recipe print no result if it wouldn't give anything in the case of no results being allowed to craft (by other flags, like @ingredientcondition).
NOTE: If there is no item to be displayed (all are secret or unavailable), using this with 'first' will not do anything.
NOTE: Can only be used on workbench recipes because it can not have effect on other recipes.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@displayresult first // displays the first available result
@displayresult diamond_helmet:120 // damaged diamond helmet
Aliases: @resultdisplay, @showresult
^ Contents
@enchantedbook <enchant> [level or max]
IngredientResult
Adds stored enchantments in a enchanted book item.
This flag may be used more times to add more enchantments to the item.
You must specify an enchantment name or id, see name index.html#enchantment
Optionally you can set the level of enchantment
Default is the enchantment's start level
You can use 'max' to set it to enchantment's max level.
You can use 'remove' to remove the enchantment (from a cloned ingredient)
You can set a random level using the {rand} format:
{rand #1-#2} = output a random integer between #1 and #2. Example: {rand 2-3} will output an integer from 2-3
{rand n} = reuse a random output, where n is the nth {rand} in a recipe used excluding this format
If using a saved random output that includes decimals, it will be rounded to the nearest integer.
Enchantments are forced and there is no level cap!
Specific item: enchanted_book
Setting to 'false' or 'remove' will disable the flag.
Examples:
@enchantedbook efficiency // dig_speed alias
@enchantedbook damage_all max
@enchantedbook arrow_fire 127
@enchantedbook sharpness remove
@enchantedbook sharpness {rand 3-5} // Gives a random level of 3, 4, or 5
Aliases: @enchantbook, @enchantingbook
^ Contents
@enchantitem <enchantment> [level]
IngredientResult
Enchants the result with the specified enchantment at specified level.
You must specify an enchantment name, see name index.html#enchantment
Optionally you can set the level of enchantment
Default is the enchantment's start level
You can use 'max' to set it to enchantment's max level.
You can use 'remove' to remove the enchantment (from a cloned ingredient)
You can set a random level using the {rand} format:
{rand #1-#2} = output a random integer between #1 and #2. Example: {rand 2-3} will output an integer from 2-3
{rand n} = reuse a random output, where n is the nth {rand} in a recipe used excluding this format
If using a saved random output that includes decimals, it will be rounded to the nearest integer.
Enchantments are forced and there is no level cap!
This flag may be used more times to add more enchantments to the item.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@enchantitem OXYGEN // enchant with oxygen at level 1
@enchantitem DIG_SPEED max // enchant with dig speed at max valid level
@enchantitem ARROW_INFINITE 127 // enchant with arrow infinite forced at level 127
@enchantitem SHARPNESS remove // removes a sharpness enchant
@enchantitem SHARPNESS {rand 3-5} // Gives a random level of 3, 4, or 5
Aliases: @enchant, @enchantment
^ Contents
@enchantmentglintoverride [false]
IngredientResult
Makes the result glint, even without enchantments
Optionally, adding false will remove the glint
Setting to 'false' or 'remove' will disable the flag.
Examples:
@enchantmentglintoverride // Makes the result glint
@enchantmentglintoverride false // Removes the glint
Aliases: @enchantglintoverride, @enchantmentglint, @enchantglint, @glint
^ Contents
@explode <arguments or false>
RecipeResult
Makes the workbench/furnace/player explode when recipe is crafted.
This flag can only be declared once per recipe and once per result.
Replace <arguments> with the following arguments separated by | character:
power <0.0 to ...> = (default 2.0) Set the explosion power, value multiplied by 2 is the range in blocks; TNT has 4.0
fire = (default not set) Explosion sets fires.
nobreak = (default not set) Makes explosion not break blocks.
nodamage [self] = (default not set) Explosion doesn't damage players or only the crafter if 'self' is specified.
fail = (default not set) Explode if recipe failed as opposed to succeed.
fuel <start,end,random> = (default start) Causes the explosion to happen at different times. Can only be used on fuel recipes.
All arguments are optional and you can specify these arguments in any order.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@explode // will explode when recipe succeeds with power 2 and breaks blocks
@explode nobreak | fire | power 6 // will explode without block damage but sets fires
@explode fail | power 2 // will explode when recipe fails
@explode fuel end // On a fuel recipe, will cause the explosion to happen after the fuel runs out
@explode fuel random // On a fuel recipe, will cause the explosion to happen sometime randomly before the fuel runs out
Aliases: @explosion, @boom, @tnt
^ Contents
@failmessage [message or false]
Recipe
Changes the message when recipe fails due to failure chance.
Using this flag more than once will overwrite the previous message.
The message supports colors (<red>, &3, etc).
You can also use the following variables inside the message:
{failchance} = recipe's chance of failure as a number.
{successchance} = recipe's chance of success as a number.
{resultchance} = result's chance of success as a number.
The same effect can be achieved by using @message on the fail result item.
Allows quotes to prevent spaces being trimmed.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@failmessage <red>YOU FAILED, MWaHahahah!
@failmessage " Extra space " // Quotes at the beginning and end will be removed, but spaces will be kept.
Aliases: @failmsg
^ Contents
@fireresistant [false]
IngredientResult
Makes the result immune to burning in fire
Optionally, adding false will remove the fire immunity
Setting to 'false' or 'remove' will disable the flag.
Examples:
@fireresistant // Makes the result immune to burning in fire
@fireresistant false // Removes the fire immunity
Aliases: @fireimmune
^ Contents
@fireworkitem effect <effect data>
@fireworkitem power <0-127>
IngredientResult
Configures firework rocket's effects.
Using this flag more than once will append changes to the item.
The 'effect' setting adds an effect to the rocket.
Replace '<effect arguments>' with the following arguments separated by | character.
Effects can be:
color <red> <green> <blue>, ... = (Required) Sets the primary explosion color(s), you can define more colors separated by comma.
fadecolor <red> <green> <blue>, ... = (Optional) Color(s) of the explosion fading, you can define more colors separated by comma.
type <explode type> = (Optional) Shape/size of explosion, see: name index.html#fireworkeffect
trail = (Optional) Adds a trail to the explosion
flicker = (Optional) Adds a flicker to explosion
Effects can be listed in any order.
Colors must be 3 numbers ranging from 0 to 255, basic RGB format.
The 'power <number 0-127>' value sets how long rocket will fly, each number is 0.5 seconds of flight, default 2, recommended max 4.
Specific item: firework.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@fireworkitem effect color 0 255 0
@fireworkitem effect trail | color 255 0 0 | type burst
@fireworkitem effect color 255 0 200, 0 255 0, 255 128 0 | trail | type ball_large | fadecolor 255 0 0, 0 0 255, 0 255 0
@fireworkitem power 1
Aliases: @firework, @fireworkrocket
^ Contents
@fireworkstaritem <effect arguments>
IngredientResult
Configures firework charge's effect.
Using this flag more than once will overwrite previous changes since the item only supports one effect.
Replace '<effect arguments>' with the following arguments separated by | character.
Effects can be:
color <red> <green> <blue>, ... = (Required) Sets the primary explosion color(s), you can define more colors separated by comma.
fadecolor <red> <green> <blue>, ... = (Optional) Color(s) of the explosion fading, you can define more colors separated by comma.
type <explode type> = (Optional) Shape/size of explosion, see: name index.html#fireworkeffect
trail = (Optional) Adds a trail to the explosion
flicker = (Optional) Adds a flicker to explosion
Effects can be listed in any order.
Colors must be 3 numbers ranging from 0 to 255, basic RGB format.
Specific item: firework_star.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@fireworkstaritem trail | color 255 0 0, 0 255 0 | type ball_large
@fireworkstaritem type creeper | color 0 255 0 | fadecolor 255 0 0, 0 255 0 | flicker
Aliases: @fireworkstar, @fireworkchargeitem, @fireworkcharge, @fireworkeffect
^ Contents
@food <nutrition> | [arguments]
IngredientResult
Adds a food component to an item, making it consumable
Using this flag more than once will overwrite the previous flag.
The <nutrition> argument sets food restored by this item when eaten. Value must be a non-negative integer. Defaults to 0.
Optionally you can specify some arguments separated by | character:
saturation <float> = (default 0.0) saturation restored by this item when eaten. Value must be float value.
alwayseat [false] = (default false) if set, this item can be eaten even when not hungry.
seconds <float> = (default 0.0) time in seconds it will take for this item to be eaten.
NOTE: The default value of 0.0 will not consume the item!
You can specify these arguments in any order and they're completely optional.
NOTE: You can also add Potion effects with @foodpotioneffect
Setting to 'false' or 'remove' will disable the flag.
Examples:
@food 5 | saturation 10 | seconds 0.1 // Gives 5 hunger, 10 saturation, and can be eaten in 0.1 seconds
@food 0 | saturation 5 | seconds 2 | alwayseat // Gives 5 saturation, but no hunger, can be eaten in 2 seconds, and can always be consumed
^ Contents
@foodpotioneffect <chance> | <potionEffect>
IngredientResult
Adds a potion effect as a food component to an item
Using this flag more than once will add more potion effects.
<chance> is the probability this potion effect will be applied. Value must be between 0 and 1 inclusive.
<potionEffect> The potion effect that will be applied to the player on eating the food.
See @potioneffect for options
NOTE: Use with @food if you want the item to actually be consumable as the default settings will not eat the item.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@foodpotioneffect 1 | heal // 100% chance to apply heal potion effect
@foodpotioneffect 0.5 | blindness | duration 60 | amplifier 5 // 50% chance to apply effect
@foodpotioneffect 0.1 | poison | ambient | amplifier 666 | duration 6.66 // 10% chance to apply effect
Aliases: @foodeffect, @foodpotion
^ Contents
@forchance <group> [chance]% [^]@[flag declaration]
@forchance <chance>% [^]@<flag declaration>
RecipeResult
Triggers other flags or groups of flags by specified chance.
Using this flag more than once will add more flags.
The 'group' argument defines a group for the flags (not permission related), can be any combination of letters only, no spaces either.
Grouping flags makes the system pick only one flag from the bunch which means it's also limited to 100% total chance.
If a group is not defined then the flags will be added to the default group which is a special group that will trigger flags randomly according to their chance, it can trigger all at once or even none at all.
The 'chance' argument suggests a chance value that can be between 0.01 and 100 and the '%' suffix is required.
The chance argument is only optional if there's a group defined, then the remaining chance will be evenly split between all flags with undefined chance.
The 'flag declaration' is a flag like you'd add a flag to a recipe or result, you can even add this flag into itself to make multi-chance structures.
The flag declaration argument is only optional if there's a group defined and will act as literally nothing.
Optionally you can prefix the flag declaration with the '^' character to add more flags to the same group (no group is still a group, but a special one).
NOTE: If using '^' prefix, always use '^' and '@' together like '^@', no space in between.
NOTE: In a group there must be at least a chance value or a flag declaration.
Setting to 'false' or 'remove' will disable the flag.
Examples:
// some simple example
@forchance 25% @explode // 25% chance to explode
// appending to flags example
@forchance 80% @command say high chance message!
@forchance 50% @command say 50-50 message... // this is a totally new flag, individual from the previous one.
@forchance ^@command say extra message! // this command will be added to the previous command flag's chance.
@forchance ^@summon zombie // This will summon a zombie along with the previous two commands.
// appending flags with multiple chances example
@forchance attack 40% @message Zombie Attack! // 40% of the time, it will send 'Zombie Attack!' and summon a zombie
@forchance attack ^@summon zombie
@forchance attack 40% @message Skeleton Attack! // 40% of the time, it will send 'Skeleton Attack!' and summon a skeleton.
@forchance attack ^@summon skeleton
// The remaining 20% of the time, nothing will happen.
// all flags in a group must have a total of 100% chance since only one triggers, in this case the chance is calculated and it would be 33.33% for each.
@forchance mystuff @sound level_up
@forchance mystuff @sound note_bass
@forchance mystuff @sound hurt
// example of empty flag definition as nothing chance
@forchance dostuff @broadcast yay!
@forchance dostuff 75% // this sets the 'dostuff' group to do nothing 75% of the time
// forchanception
@forchance 50% @forchance 25% @forchance test @broadcast chanception occurred!
// NOTE all of the examples above can be used in a single recipe if you want, there's no limit to the combinations!
Aliases: @bychance, @chance
^ Contents
@fordelay <delay> @<flag declaration>
@fordelay @<flag declaration> // Add more flags to the previous one
RecipeResult
Run other flags after a delay.
You can specify this flag more than once.
The <delay> is the number of ticks that the <flag declarations>'s will be delayed by.
The '<flag declaration>' must be a flag that will work without affecting the result.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@fordelay 100 @command /summon lightning_bolt ~ ~ ~ // 100 ticks after craft, summon lightning
@fordelay 100 @forrepeat 5 10 @command /summon lightning_bolt ~{rand -5-5} ~ ~{rand -5-5} // @fordelay can be chained with @forrepeat for even more customization
Aliases: @delay
^ Contents
@forpermission <permission node> @<flag declaration>
RecipeResult
Adds other flags with permission requirements.
You can specify this flag more than once to add more permissions or more flags to a permission.
Basically this is a storage for flags and will only trigger them if the crafter has the required permission.
This is useful for using different values for flags on the same recipe but for different permissions.
The '<permission node>' argument must be a permission node.
The '<flag declaration>' must be a flag that will work on the current recipe or result.
For extra awesomeness you can even add this flag inside itself!
NOTE: This will trigger all flags that player has permission for which means that flag effects will stack up.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@exp -2 // you can use original flag as is for players that do not have the permission
@forpermission farmer.newbs @exp 4 // add 4 exp to the original -2 exp so player will have +2 exp
@forpermission farmer.uber @exp 50 // add 50 exp to the original -2 exp and also add 4 exp if the player has that node too
@forpermission farmer.uber @level 1 // if has required give the crafter 1 level
Aliases: @forperm
^ Contents
@forrepeat <times to repeat> <delay per repeat> @<flag declaration>
@forrepeat <times to repeat> @<flag declaration> // Defaults to a <delay per repeat> of 0
@forrepeat @<flag declaration> // Add more flags to the previous one
RecipeResult
Run other flags multiple times with an optional delay between them.
You can specify this flag more than once.
The <times to repeat> is the number of times the contained flags will be repeated.
The <delay per repeat> is the number of ticks that each repeat after the first will be delayed by.
The '<flag declaration>' must be a flag that will work without affecting the result.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@forrepeat 5 10 @command /summon lightning_bolt ~{rand -5-5} ~ ~{rand -5-5} // Summon lightning 5 times, with a 10 tick delay between them
Aliases: @repeat
^ Contents
@gamemode <game mode>
@gamemode <game mode> | [message]
@gamemode false
RecipeResult
Requires the crafter to be in a specific game mode.
Using this flag more than once will overwrite the previous ones.
Values for <game mode> can be: c or creative, a or adventure, s or survival
Optionally you can specify a failure message, should be short because it prints in the display result.
Additionally you can use the following variables in the message:
{playergm} = player's game mode (which is not allowed)
{gamemodes} = list of required game modes
Setting to 'false' or 'remove' will disable the flag.
Examples:
@gamemode creative // only creative
@gamemode s // only survival
@gamemode a,s // only adventure and survival
@gamemode false // disable flag, allow all gamemodes
Aliases: @needgm
^ Contents
@getrecipebook <book id> [volume <num>]
Result
Overwrites result with the specified recipe book.
For the '<book id>' argument you need to specify the book ID/filename, case insensitive.
Optionally you can set which volume to give, will give first by default, using a bigger number than the number of volumes will pick the last volume.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@getrecipebook recipe stuff // matches a 'Recipe Stuff.yml' book for example.
@getrecipebook vanilla_recipes volume 2 // matches a 'vanilla_recipes.yml' with volume 2 for example.
Aliases: @getbook, @bookresult
^ Contents
@group [!]<group>, [...] | [fail message]
RecipeResult
Makes the recipe or item require the crafter to be in a permission group.
Using this flag more than once will add more groups, the player must be in at least one group.
The '<group>' argument must be a permission group.
Adding ! character as prefix to individual groups will do the opposite check, if crafter is in group it will not craft.
You can also specify more groups separated by , character.
Optionally you can specify a failure message that will be used on the specific group(s) defined.
The messages can have the following variables:
{group} = group that was not found or was found and it's unallowed.
{groups} = a comma separated list of the allowed or unallowed groups.
NOTE: Vault with a supported permission plugin is required for this flag to work.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@group ranks.vip
@group !jobs.builder | <red>Builders can't use this!
@group jobs.farmer, jobs.trader | <red>You must be a farmer or trader!
@group ! ranks.newbs, ! ranks.newbies | <yellow>Noobs can't use this. // valid with spaces too
Aliases: @groups, @permissiongroup, @permgroup
^ Contents
@height <min or min-max> | [fail message]
RecipeResult
Checks if crafter or furnace is at least at 'min' height and optionally at most 'max' height.
Using this flag more than once will overwrite the previous one.
Optionally you can overwrite the fail message or you can use 'false' to hide it.
In the message the following variables can be used:
{height} = height or height range
Setting to 'false' or 'remove' will disable the flag.
Examples:
@height 200 // must be high in the sky
@height 0-30 | <red>You need to be deep underground!
Aliases: @depth
^ Contents
@hide <arguments>
IngredientResult
Configures hide attributes for items
Replace '<arguments>' with the following arguments separated by | character.
Arguments can be:
attributes = Hide attributes like Damage
destroys = Hide what the item can break/destroy
enchants = Hide enchants
placedon = Hide where this item can be placed on
additionaltooltip = Hide potion effects, book and firework information, map tooltips, patterns of banners, and enchantments of enchanted books
unbreakable = Hide the unbreakable state
dye = Hides dyes from colored leather armor
armortrim = Hides armor trim from leather armor
all = Hides everything
Arguments can be listed in any order.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@hide attributes // Removes Damage on a sword
@hide placedon | destroys // Removes placed on line and break/destroy lines
^ Contents
@hidetooltip [false]
IngredientResult
Hides the result's tooltip
Optionally, adding false will make the result show its tooltip again
Examples:
@hidetooltip // Hides the result's tooltip
@hidetooltip false // Disable this flag, allowing the result to have a tooltip again
^ Contents
@holditem <item or false> | [conditions]
RecipeResult
Makes the recipe require crafter to hold an item.
This flag can be used more than once to add more items, the player will need to hold one to craft.
Using the flag more than once with slot conditions will require an item in each slot added.
The <item> argument can be in this format: material:data
For [conditions] argument you may further specify what item must be used.
Conditions must be separated by | and can be specified in any order.
Condition list:
slot <slotname>
Changes the slot that is checked
Slot name values:
mainhand: selected hotbar slot. Defaults to this.
offhand or shield: offhand slot.
helmet: Helmet slot.
chest or chestplate: Chestplate slot.
legs or leggings: Leggings slot.
boots: Boots slot.
inventory: Any inventory slot.
data <[!][&]num or min-max or all or vanilla or damaged or new>, [...]
Condition for data/damage/durability, as argument you can specify data values separated by , character.
One number is required, you can add another number separated by - character to make a number range.
Additionally instead of the number you can specify 'item:data' to use the named data value.
Special data values:
all: Flips the data check to allow all data values instead of none initially.
vanilla: Only allow data values within the vanilla ranges.
new: Equivalent to 0, or an undamaged item.
damaged: On weapons and armor, this is everything within vanilla limits that is considered a damaged item.
Prefixing with '&' would make a bitwise operation on the data value.
Prefixing with '!' would reverse the statement's meaning making it not work with the value specified.
Optionally you can add more data conditions separated by ',' that the held item must match against one to proceed.
Defaults to the equivalent of !all.
enchant <name> [[!]num or min-max], [...]
Condition for applied enchantments (not stored in books).
This argument can be used more than once to add more enchantments as conditions.
The name must be an enchantment name, see name index.html#enchantment
The 2nd argument is the levels, it's optional
A number can be used as level to set that level as requirement.
You can also use 'max' to use the max supported level for that enchantment.
Additionally a second number separated by - can be added to specify a level range, 'max' is also supported in ranged value.
Prefixing with '!' would ban the level or level range.
noenchant or !enchant
Held item must have no enchantment
Overrides enchant condition if set
bookenchant <name> [[!]num or min-max], [...]
Condition for book enchantments (not applied enchantments)
This argument can be used more than once to add more enchantments as conditions.
The name must be an enchantment name, see name index.html#enchantment
The 2nd argument is the levels, it's optional
A number can be used as level to set that level as requirement.
You can also use 'max' to use the max supported level for that enchantment.
Additionally a second number separated by - can be added to specify a level range, 'max' is also supported in ranged value.
Prefixing with '!' would ban the level or level range.
nobookenchant or !bookenchant
Held item must have no book enchantment
Overrides bookenchant condition if set
amount <num> = stack amount
name <text or regex:pattern> = check the item name against exact text or if prefixed with 'regex:' it will check for a regex pattern.
Note for regex:pattern Escape for '|' is a double '||'. Any double pipes will be converted back to single pipes for regex parsing.
noname or !name
Held item must have no/default name
Overrides name condition if set
itemname <text or regex:pattern> = check the item name against exact text or if prefixed with 'regex:' it will check for a regex pattern.
Note for regex:pattern Escape for '|' is a double '||'. Any double pipes will be converted back to single pipes for regex parsing.
noitemname or !itemname
Ingredient must have no/default item name
Overrides itemname condition if set
localizedname <text or regex:pattern> = check the item's localizedname against exact text or if prefixed with 'regex:' it will check for a regex pattern.
Note for regex:pattern Escape for '|' is a double '||'. Any double pipes will be converted back to single pipes for regex parsing.
nolocalizedname or !localizedname
Ingredient must have no localizedname
Overrides localizedname condition if set
lore <text or regex:pattern> = checks each lore line for a specific text or if prefixed with 'regex:' it will check for a regex pattern.
Note for regex:pattern Escape for '|' is a double '||'. Any double pipes will be converted back to single pipes for regex parsing.
nolore or !lore
Held item must have no lore
Overrides lore condition if set
color <colorname or R,G,B> = only works for leather armor, checks color
values can be individual values or ranged separated by - char or you can use a color name constant, see name index.html#dyecolor
nocolor or !color
Only works for leather armor
Held item must have default/vanilla color
Overrides color condition if set
unbreakable = Ingredient must have the unbreakable flag
nounbreakable or !unbreakable = Ingredient must not have the unbreakable flag
hidetooltip = Ingredient must have the hidetooltip flag
nohidetooltip or !hidetooltip = Ingredient must not have the hidetooltip flag
enchantmentglint = Ingredient must have the enchantmentglint flag
noenchantmentglint or !enchantmentglint = Ingredient must not have the enchantmentglint flag
fireresistant = Ingredient must have the fireresistant flag
nofireresistant or !fireresistant = Ingredient must not have the fireresistant flag
custommodeldata <number> = Ingredient must have custom model data
nocustommodeldata or !custommodeldata = Ingredient must not have custom model data
maxstacksize <amount> = Ingredient must have a custom max stack size
nomaxstacksize or !maxstacksize = Ingredient must not have a custom max stack size
rarity <rarity> = Ingredient must have a specific rarity
Rarity values: common, uncommon, rare, epic
norarity or !rarity = Ingredient must not have a rarity
ominousbottleamplifier <amount> = Ingredient must have an ominous bottle amplifier
noominousbottleamplifier or !ominousbottleamplifier = Ingredient must not have an ominous bottle amplifier
nometa or !meta
Ingredient must have no metadata (enchants, bookenchants, name, itemname, lore, color, unbreakable, hidetooltip, enchantmentglint, fireresistant, localizedname, custommodeldata, maxstacksize, rarity, ominousbottleamplifier)
Overrides enchant, name, itemname, lore, color, unbreakable, hidetooltip, enchantmentglint, fireresistant, localizedname, custommodeldata, maxstacksize, rarity, ominousbottleamplifier conditions if set
Equivalent to noenchant | nobookenchant | noname | noitemname | nolore | nocolor | nounbreakable | nohidetooltip | noenchantmentglint | nofireresistant | nolocalizedname | nocustommodeldata | nomaxstacksize | norarity | noominousbottleamplifier
potion <condition>, [...]
type <potiontype> = Type of potion, see name index.html#potiontype
potioneffect <condition>, [...]
type <effecttype> = Type of potion effect, see name index.html#potioneffect
duration <num or min-max> = Duration of the potion effect in seconds, default 1 (does not work on HEAL and HARM)
amplify <num or min-max> = Amplify the effects of the potion, default 0 (e.g. 2 = <PotionName> III, numbers after potion's max level will display potion.potency.number instead)
ambient or !ambient = Check effect's extra visual particles setting
particles or !particles = Check effect's particles setting
icon or !icon = Check effect's icon setting
suspiciousstew <condition>, [...]
type <effecttype> = Type of potion effect, see name index.html#potioneffect
duration <num or min-max> = Duration of the potion effect in seconds, default 1 (does not work on HEAL and HARM)
amplify <num or min-max> = Amplify the effects of the potion, default 0 (e.g. 2 = <PotionName> III, numbers after potion's max level will display potion.potency.number instead)
ambient or !ambient = Check effect's extra visual particles setting
particles or !particles = Check effect's particles setting
icon or !icon = Check effect's icon setting
banner <condition>, [...]
pattern <pattern> [dyecolor]
Patterns: name index.html#bannerpattern
Dye Colors: white, orange, magenta, light_blue, yellow, lime, pink, gray, light_gray, cyan, purple, blue, brown, green, red, black
spawnegg <entitytype> = Type of entity contained in a spawn egg, see name index.html#entitytype
Setting to 'false' or 'remove' will disable the flag.
Examples:
@holditem iron_pickaxe // any data/damage value
@holditem iron_axe:0 // only undamaged axe!
@holditem chainmail_helmet | enchant protection_fire 1 // requires chain helmet with any level of damage and fire protection enchant level 1
@holditem false // makes all previous statements useless
Aliases: @hold
^ Contents
@individualresults
Recipe
Allows multi-result recipes to have individual result outcomes, instead of a chance based outcome between all results.
With this flag set, the first valid recipe found will be the one crafted
A percent chance on a result will cause the recipe to fail the rest of the percent out of 100.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@individualresults
Aliases: @individual
^ Contents
@ingredientcondition <item> | <conditions>
RecipeResult
Adds conditions for individual ingredients like ranged data values, enchantments or using stacks.
This flag can be called more than once to add more ingredients with conditions.
The <item> argument must be an item that is in the recipe, 'material:data' format.
If you're planning to add ranged data values the data value must be the wildcard '*' or not set at all in order to work.
For <conditions> argument you must specify at least one condition.
Conditions must be separated by | and can be specified in any order.
Condition list:
data <[!][&]num or min-max or all or vanilla or damaged or new>, [...]
Condition for data/damage/durability, as argument you can specify data values separated by , character.
One number is required, you can add another number separated by - character to make a number range.
Additionally instead of the number you can specify 'item:data' to use the named data value.
Special data values:
all: Flips the data check to allow all data values instead of none initially.
vanilla: Only allow data values within the vanilla ranges.
new: Equivalent to 0, or an undamaged item.
damaged: On weapons and armor, this is everything within vanilla limits that is considered a damaged item.
Prefixing with '&' would make a bitwise operation on the data value.
Prefixing with '!' would reverse the statement's meaning making it not work with the value specified.
Optionally you can add more data conditions separated by ',' that the ingredient must match against one to proceed.
Defaults to the equivalent of !all.
enchant <name> [[!]num or min-max], [...]
Condition for applied enchantments (not stored in books).
This argument can be used more than once to add more enchantments as conditions.
The name must be an enchantment name, see name index.html#enchantment
The 2nd argument is the levels, it's optional
A number can be used as level to set that level as requirement.
You can also use 'max' to use the max supported level for that enchantment.
Additionally a second number separated by - can be added to specify a level range, 'max' is also supported in ranged value.
Prefixing with '!' would ban the level or level range.
noenchant or !enchant
Ingredient must have no enchantment
Overrides enchant condition if set
bookenchant <name> [[!]num or min-max], [...]
Condition for book enchantments (not applied enchantments)
This argument can be used more than once to add more enchantments as conditions.
The name must be an enchantment name, see name index.html#enchantment
The 2nd argument is the levels, it's optional
A number can be used as level to set that level as requirement.
You can also use 'max' to use the max supported level for that enchantment.
Additionally a second number separated by - can be added to specify a level range, 'max' is also supported in ranged value.
Prefixing with '!' would ban the level or level range.
nobookenchant or !bookenchant
Ingredient must have no book enchantment
Overrides bookenchant condition if set
amount <num> = stack amount, this will also subtract from the ingredient when crafted!
name <text or regex:pattern> = check the display name against exact text or if prefixed with 'regex:' it will check for a regex pattern.
Note for regex:pattern Escape for '|' is a double '||'. Any double pipes will be converted back to single pipes for regex parsing.
noname or !name
Ingredient must have no/default display name
Overrides name condition if set
itemname <text or regex:pattern> = check the item name against exact text or if prefixed with 'regex:' it will check for a regex pattern.
Note for regex:pattern Escape for '|' is a double '||'. Any double pipes will be converted back to single pipes for regex parsing.
noitemname or !itemname
Ingredient must have no/default item name
Overrides itemname condition if set
localizedname <text or regex:pattern> = check the item's localizedname against exact text or if prefixed with 'regex:' it will check for a regex pattern.
Note for regex:pattern Escape for '|' is a double '||'. Any double pipes will be converted back to single pipes for regex parsing.
nolocalizedname or !localizedname
Ingredient must have no localizedname
Overrides localizedname condition if set
lore <text or regex:pattern> = checks each lore line for a specific text or if prefixed with 'regex:' it will check for a regex pattern.
Note for regex:pattern Escape for '|' is a double '||'. Any double pipes will be converted back to single pipes for regex parsing.
nolore or !lore
Ingredient must have no lore
Overrides lore condition if set
color <colorname or R,G,B> = only works for leather armor, checks color
values can be individual values or ranged separated by - char or you can use a color name constant, see name index.html#dyecolor
nocolor or !color
Only works for leather armor
Ingredient must have default/vanilla color
Overrides color condition if set
unbreakable = Ingredient must have the unbreakable flag
nounbreakable or !unbreakable = Ingredient must not have the unbreakable flag
hidetooltip = Ingredient must have the hidetooltip flag
nohidetooltip or !hidetooltip = Ingredient must not have the hidetooltip flag
enchantmentglint = Ingredient must have the enchantmentglint flag
noenchantmentglint or !enchantmentglint = Ingredient must not have the enchantmentglint flag
fireresistant = Ingredient must have the fireresistant flag
nofireresistant or !fireresistant = Ingredient must not have the fireresistant flag
custommodeldata <number> = Ingredient must have custom model data
nocustommodeldata or !custommodeldata = Ingredient must not have custom model data
maxstacksize <amount> = Ingredient must have a custom max stack size
nomaxstacksize or !maxstacksize = Ingredient must not have a custom max stack size
rarity <rarity> = Ingredient must have a specific rarity
Rarity values: common, uncommon, rare, epic
norarity or !rarity = Ingredient must not have a rarity
ominousbottleamplifier <amount> = Ingredient must have an ominous bottle amplifier
noominousbottleamplifier or !ominousbottleamplifier = Ingredient must not have an ominous bottle amplifier
nometa or !meta
Ingredient must have no metadata (enchants, bookenchants, name, itemname, lore, color, unbreakable, hidetooltip, enchantmentglint, fireresistant, localizedname, custommodeldata, maxstacksize, rarity, ominousbottleamplifier)
Overrides enchant, name, itemname, lore, color, unbreakable, hidetooltip, enchantmentglint, fireresistant, localizedname, custommodeldata, maxstacksize, rarity, ominousbottleamplifier conditions if set
Equivalent to noenchant | nobookenchant | noname | noitemname | nolore | nocolor | nounbreakable | nohidetooltip | noenchantmentglint | nofireresistant | nolocalizedname | nocustommodeldata | nomaxstacksize | norarity | noominousbottleamplifier
needed <num>
Sets the number of ingredients that need to match this condition
Defaults to all of the ingredientcondition type
potion <condition>, [...]
type <potiontype> = Type of potion, see name index.html#potiontype
potioneffect <condition>, [...]
type <effecttype> = Type of potion effect, see name index.html#potioneffect
duration <num or min-max> = Duration of the potion effect in seconds, default 1 (does not work on HEAL and HARM)
amplify <num or min-max> = Amplify the effects of the potion, default 0 (e.g. 2 = <PotionName> III, numbers after potion's max level will display potion.potency.number instead)
ambient or !ambient = Check effect's extra visual particles setting
particles or !particles = Check effect's particles setting
icon or !icon = Check effect's icon setting
suspiciousstew <condition>, [...]
type <effecttype> = Type of potion effect, see name index.html#potioneffect
duration <num or min-max> = Duration of the potion effect in seconds, default 1 (does not work on HEAL and HARM)
amplify <num or min-max> = Amplify the effects of the potion, default 0 (e.g. 2 = <PotionName> III, numbers after potion's max level will display potion.potency.number instead)
ambient or !ambient = Check effect's extra visual particles setting
particles or !particles = Check effect's particles setting
icon or !icon = Check effect's icon setting
banner <condition>, [...]
pattern <pattern> [dyecolor]
Patterns: name index.html#bannerpattern
Dye Colors: white, orange, magenta, light_blue, yellow, lime, pink, gray, light_gray, cyan, purple, blue, brown, green, red, black
spawnegg <entitytype> = Type of entity contained in a spawn egg, see name index.html#entitytype
failmsg <text> = overwrite message sent to crafter when failing to provide required ingredient.
This flag can be used on recipe results to determine a specific outcome for the recipe depending on the ingredients.
However, you would need 'failmsg false' along with @displayresult flag, see advanced recipes.html for an example.
NOTE: this flag can not be used in recipe header, needs to be defined on individual results or recipes.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@ingredientcondition wood | data 3 // pointless use of this flag, just use wood:3 as ingredient.
@ingredientcondition wood | data 1-3, 39, 100 // this overwrites the data condition to the previous one.
@ingredientcondition dirt | amount 64 // needs a full stack of dirt to work.
@ingredientcondition iron_sword | data 0-25 // only accepts iron swords that have 0 to 25 damage.
@ingredientcondition wool | data vanilla, !wool:red // no red wool
@ingredientcondition wool | data all, !vanilla // only modded data values
@ingredientcondition iron_sword | data new // Only allow undamaged iron swords
@ingredientcondition golden_sword | data damaged // Only allow damaged gold swords
@ingredientcondition splash_potion // checks if potion is splash
@ingredientcondition diamond_helmet | enchant fire_resistance 1-3 | enchant thorns | data 0, 5, 50-100 // makes ingredient require 2 enchantments and some specific data values.
@ingredientcondition stick | nometa // makes ingredient require a vanilla stick.
@ingredientcondition stick | !meta // Same as above.
@ingredientcondition stick | name Crafted Stick | nolore | noenchant // makes ingredient require a stick with a name of 'Crafted Stick', but no lore or enchantments.
Aliases: @ingrcondition, @ingrcond, @ifingredient, @ifingr
^ Contents
@inventory <inventory type> , ... | [arguments]
RecipeResult
Checks if crafting in the specific type of inventory
The <inventory type> argument is required
Values: name index.html#inventory
Can declare multiple inventory types separated by commas
Optional arguments:
title <text> - Add an inventory title restriction
You can add more titles seperated by a , character to set the allowed titles.
Also you can disallow titles by prefixing them with a ! character.
Checks if any allowed titles are matched and all disallowed titles are not matched.
failmsg <message> - Overwrite the fail message or you can use 'false' to hide it.
In the message the following variables can be used:
{inventory} = name of inventory type(s)
{title} = title of inventory
Setting to 'false' or 'remove' will disable the flag.
Examples:
@inventory crafting // Player crafting menu
@inventory workbench // Must use a crafting table
@inventory workbench | title Custom // Must use a crafting table named 'Custom'
^ Contents
@itemattribute <attribute> [modifier]<num>
@itemattribute <attribute> [modifier]<num> | slot <slot>
IngredientResult
Adds an attribute, such as max health to the result
<attribute> The attribute you want to modify.
Values: all, or see: name index.html#itemattribute
Values starting with 'GENERIC_' such as GENERIC_MAX_HEALTH can be used without 'GENERIC_' for ease of use. max_health would be valid in this case.
[modifier] can be x for multiplication otherwise it will use addition
<num> is the amount you want the attribute modified by. If you're not using multiplication as a modifier, the value with be added/subtracted.
Note that with multiplication, 1 = 100%. Values are expected in decimal/double format: '1.5'.
The <slot> argument is the slot you want the attribute to affect. Default is HAND.
Values: all, hand, off_hand, feet, legs, chest, head, body
'all' will let the attribute affect all of the equipment slots
offhand can be used instead of off_hand as well.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@itemattribute max_health 5 // Adds 2.5 hearts of health, defaults to HAND slot
@itemattribute movement_speed -.1 | slot feet // Reduce speed by .1 when worn in the feet/boots slot
@itemattribute armor x.2 | slot offhand // Adds +20% Armor
Aliases: @attribute
^ Contents
@itemlore <text>
@itemlore <text> | display
@itemlore <text> | result
RecipeIngredientResult
Adds a line to result's lore (description)
Supports colors (e.g. <red>, <blue>, &4, &F, etc).
You can also use these variables:
{player} = crafter's name or '(nobody)' if not available
{playerdisplay} = crafter's display name or '(nobody)' if not available
{result} = the result item name or '(nothing)' if recipe failed.
{recipename} = recipe's custom or autogenerated name or '(unknown)' if not available
{recipetype} = recipe type or '(unknown)' if not available
{inventorytype} = inventory type or '(unknown)' if not available
{world} = world name of event location or '(unknown)' if not available
{x} = event location's X coord or '(?)' if not available
{y} = event location's Y coord or '(?)' if not available
{z} = event location's Z coord or '(?)' if not available
Relative positions are supported: {x-1},{y+7},{z+12}
{rand #1-#2} = output a random integer between #1 and #2. Example: {rand 5-10} will output an integer from 5-10
{rand #1-#2, #3} = output a random number between #1 and #2, with decimal places of #3. Example: {rand 1.5-2.5, 2} will output a number from 1.50 to 2.50
{rand n} = reuse a random output, where n is the nth {rand} in a recipe used excluding this format
Allows quotes to prevent spaces being trimmed.
Optional Arguments:
display = only show on the displayed item when preparing to craft (only relevant to craft/combine recipes)
result = only show on the result, but hide from the prepared result
Default behavior with neither of these arguments is to display in both locations
Setting to 'false' or 'remove' will disable the flag.
Examples:
@itemlore <red>Awesome item
@itemlore <magic>some scrambled text on line 2
@itemlore <gray>Crafted at {world}:{x},{y},{z}
@itemlore " Extra space " // Quotes at the beginning and end will be removed, but spaces will be kept.
Aliases: @lore, @itemdesc
^ Contents
@itemname <text>
RecipeIngredientResult
Changes result's name.
Supports colors (e.g. <red>, <blue>, &4, &F, etc).
You can also use these variables:
{player} = crafter's name or '(nobody)' if not available
{playerdisplay} = crafter's display name or '(nobody)' if not available
{result} = the result item name or '(nothing)' if recipe failed.
{recipename} = recipe's custom or autogenerated name or '(unknown)' if not available
{recipetype} = recipe type or '(unknown)' if not available
{inventorytype} = inventory type or '(unknown)' if not available
{world} = world name of event location or '(unknown)' if not available
{x} = event location's X coord or '(?)' if not available
{y} = event location's Y coord or '(?)' if not available
{z} = event location's Z coord or '(?)' if not available
Relative positions are supported: {x-1},{y+7},{z+12}
{rand #1-#2} = output a random integer between #1 and #2. Example: {rand 5-10} will output an integer from 5-10
{rand #1-#2, #3} = output a random number between #1 and #2, with decimal places of #3. Example: {rand 1.5-2.5, 2} will output a number from 1.50 to 2.50
{rand n} = reuse a random output, where n is the nth {rand} in a recipe used excluding this format
Allows quotes to prevent spaces being trimmed.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@itemname <light_purple>Weird Item
@itemname <yellow>{player}'s Sword
@itemname " Extra space " // Quotes at the beginning and end will be removed, but spaces will be kept.
^ Contents
@itemnbt <nbtRaw>
@itemnbt <nbtRaw> | display
@itemnbt <nbtRaw> | result
RecipeIngredientResult
Sets raw nbt data on the result.
WARNING: This exists only to support features that may not exist in the Bukkit/Spigot API yet. Support is NOT GUARANTEED, especially across future versions.
If you find you need to use this flag a lot, please consider creating a ticket about adding support for the features you are using. I will do my best to support what I can in better ways.
WARNING: There is NO VALIDATION on <nbtRaw> values. Test all outputs carefully before adding to a live server.
Format should include outer brackets: '{}'
You can also use these variables:
{player} = crafter's name or '(nobody)' if not available
{playerdisplay} = crafter's display name or '(nobody)' if not available
{result} = the result item name or '(nothing)' if recipe failed.
{recipename} = recipe's custom or autogenerated name or '(unknown)' if not available
{recipetype} = recipe type or '(unknown)' if not available
{inventorytype} = inventory type or '(unknown)' if not available
{world} = world name of event location or '(unknown)' if not available
{x} = event location's X coord or '(?)' if not available
{y} = event location's Y coord or '(?)' if not available
{z} = event location's Z coord or '(?)' if not available
Relative positions are supported: {x-1},{y+7},{z+12}
{rand #1-#2} = output a random integer between #1 and #2. Example: {rand 5-10} will output an integer from 5-10
{rand #1-#2, #3} = output a random number between #1 and #2, with decimal places of #3. Example: {rand 1.5-2.5, 2} will output a number from 1.50 to 2.50
{rand n} = reuse a random output, where n is the nth {rand} in a recipe used excluding this format
Optional Arguments:
display = only show on the displayed item when preparing to craft (only relevant to craft/combine recipes)
result = only show on the result, but hide from the prepared result
Default behavior with neither of these arguments is to display in both locations
Setting to 'false' or 'remove' will disable the flag.
Examples:
@itemnbt {display:{Name: '{"text":"CUSTOM NAME"}'}} // Basic example, but should use @displayname instead.
@itemnbt {MMOITEMS_DURABILITY: {rand 50-100}d, MMOITEMS_MAX_DURABILITY: 67d, MMOITEMS_WILL_BREAK: 1b}
Aliases: @nbt
^ Contents
@itemunbreakable [false]
IngredientResult
Makes the result unbreakable
Optionally, adding false will make the result breakable again
Examples:
@itemunbreakable // Makes the result unbreakable
@itemunbreakable false // Remove the unbreakable status, allowing for the item to be destroyed
Aliases: @unbreakable
^ Contents
@keepitem <ingredient>
@keepitem <ingredient> | damage <num>
@keepitem <ingredient> | replace <item>
@keepitem <ingredient> | replace item:<name>
RecipeResult
Keeps the specified ingredient material from being used when crafting.
This flag can be used more than once to specify more ingredients.
The <ingredient> argument can be a material:data combination of the ingredient, data value being optional, just like defining an ingredient.
For the optional 'damage <num>' argument you can specify the amount of damage to add or remove from a damageable item.
Damaging the item beyond its max durability will break it.
This argument only works for damageable items and the <num> can be a positive number to damage the item or negative to repair it.
For the optional 'replace <item>' argument you can specify an item that will replace the ingredient.
The <item> on 'replace' argument can support material:data:amount and enchantments, just like recipe results.
You can use a predefined item from an item recipe:
Format = item:<name>
<name> = The name of an item recipe defined before this flag.
This argument only works for unstackable ingredients. The item specified as replacement can be stackable.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@keepitem iron_axe // makes the iron_axe ingredient persistent
@keepitem potion | replace bottle // using any kind of potion would return an empty bottle
@keepitem potion | replace item:test sword // using any kind of potion would return the item from the 'test sword' recipe, assuming it's defined.
@keepitem diamond_pickaxe | damage 5 // keeps the diamond pickaxe but damages it by 5 points
@keepitem shears | damage -99999 // keeps shears and fully repairs it
Aliases: @returnitem, @replaceitem
^ Contents
@knowledgebookitem <namespace>:<key>, [...]
@knowledgebookitem <key>, [...]
IngredientResult
Add recipes to a knowledge book
The <namespace> argument is the plugin that the recipe was added by or minecraft itself.
The <key> is the specific recipe key
If the <key> is used alone, the namespace is defaulted to minecraft.
You can add multiple recipes by separating them with a comma.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@knowledgebookitem minecraft:bucket
@knowledgebookitem campfire
@knowledgebookitem minecraft:spruce_boat, birch_boat, minecraft:iron_pickaxe
Aliases: @knowledgebook
^ Contents
@launchfirework effect <effects>
@launchfirework power <number 0-127>
RecipeResult
Launches a firework from workbench/player/furnace when recipe or result item is crafted.
This flag can be defined multiple times add effects and set power to the same rocket.
The 'effect' setting adds an effect to the rocket.
Replace <effects> with the effects separated by | character.
Effects can be:
color <red> <green> <blue>, ... = (Required at least 1 color) Sets the primary explosion color(s), you can define more colors separated by comma.
fadecolor <red> <green> <blue>, ... = (Optional) Color(s) of the explosion fading, you can define more colors separated by comma.
type <explode type> = (Optional) Shape/size of explosion, see: name index.html#fireworkeffect
trail = (Optional) Adds a trail to the explosion
flicker = (Optional) Adds a flicker to explosion
Effects can be listed in any order.
Colors must be 3 numbers ranging from 0 to 255, basic RGB format.
The 'power <number 0-127>' value sets how long rocket will fly, each number is 0.5 seconds of flight, values above 4 are NOT recommended because it heavily affects client performance, default 2.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@launchfirework effect color 0 255 0
@launchfirework effect trail | color 255 0 0 | type burst
@launchfirework effect color 255 0 200, 0 255 0, 255 128 0 | trail | type ball_large | fadecolor 255 0 0, 0 0 255, 0 255 0
@launchfirework power 2
Aliases: @setfirework
^ Contents
@leathercolor <red> <green> <blue>
IngredientResult
Changes result's leather armor color, colors must be 3 numbers ranged from 0 to 255, the red, green and blue channels.
Specific items: leather armor.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@leathercolor 255 100 50
Aliases: @leathercolour, @color, @colour
^ Contents
@lightlevel <min or min-max> [type], [...] | [fail message]
RecipeResult
Checks for the light level.
Using this flag more than once will add more options.
The first argument must be a number from 0 to 15 to set a minimum light level, or you can specify a number range separated by a '-' character.
Optionally you can set the [type] argument to specify light type:
any = (default) any kind of light.
sun = sun light only.
blocks = light from blocks (torches, furnaces, etc) only.
Be careful using blocks light level with furnace recipes as the furnace will provide light to itself.
You can also overwrite the fail message or use 'false' to hide it.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@lightlevel 14 sun
@lightlevel 0-4 blocks | <red>Kill the lights!
@lightlevel 0-3 blocks, 12-15 sun | <red>Must be away from torches or in the sun!
Aliases: @blocklight, @sunlight, @light
^ Contents
@mapitem [arguments]
IngredientResult
Create a custom map item
Replace <arguments> with the following arguments separated by | character:
scaling [false] = Sets if the map is scaling.
locationname <name> = Sets the location name.
color <red> <green> <blue> = Sets the map color. Colors must be 3 numbers ranged from 0 to 255, the red, green and blue channels.
world <worldName> = Sets the world this map is associated with.
centerx <x> = Sets the center x position of the map. Must be an integer.
centerz <z> = Sets the center z position of the map. Must be an integer.
scale <scale> = Sets the scale of the map.
<scale> values: closest, close, normal, far, farthest
locked [false] = Sets the locked status of the map. Locked maps can not be explored further.
trackingposition [false] = Sets whether a position cursor should be shown when the map is near its center.
unlimitedtracking [false] = Whether the map will show a smaller position cursor (true), or no position cursor (false) when cursor is outside of map's range.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@mapitem scaling
@mapitem scaling | color 255 0 0
@mapitem locked | trackingposition | unlimitedtracking
Aliases: @map
^ Contents
@message <text>
RecipeResult
Prints a message when recipe or item is successfully crafted.
This flag can be used more than once to add more messages.
Colors are supported (<red>, &5, etc).
You can also use these variables:
{player} = crafter's name or '(nobody)' if not available
{playerdisplay} = crafter's display name or '(nobody)' if not available
{result} = the result item name or '(nothing)' if recipe failed.
{recipename} = recipe's custom or autogenerated name or '(unknown)' if not available
{recipetype} = recipe type or '(unknown)' if not available
{inventorytype} = inventory type or '(unknown)' if not available
{world} = world name of event location or '(unknown)' if not available
{x} = event location's X coord or '(?)' if not available
{y} = event location's Y coord or '(?)' if not available
{z} = event location's Z coord or '(?)' if not available
Relative positions are supported: {x-1},{y+7},{z+12}
{rand #1-#2} = output a random integer between #1 and #2. Example: {rand 5-10} will output an integer from 5-10
{rand #1-#2, #3} = output a random number between #1 and #2, with decimal places of #3. Example: {rand 1.5-2.5, 2} will output a number from 1.50 to 2.50
{rand n} = reuse a random output, where n is the nth {rand} in a recipe used excluding this format
Allows quotes to prevent spaces being trimmed.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@message <green>Good job!
@message <gray>Now you can die&c happy<gray> that you crafted that.
@message " Extra space " // Quotes at the beginning and end will be removed, but spaces will be kept.
Aliases: @craftmsg, @msg
^ Contents
@modexp [modifier]<amount> | [craft message]
RecipeResult
Modifies crafter's experience points.
Using this flag more than once will overwrite the previous one.
The '[modifier]' argument can be nothing at all or you can use
+ (which is the same as nothing, to add)
- (to subtract)
= (to set)
The '<amount>' argument must be the amount of experience to modify.
The '[craft message]' argument is optional and can be used to overwrite the default message or you can set it to false to hide it. Message will be printed in chat.
For the craft message you can use the following arguments:
{amount} = amount defined in the flag, never has modifier prefix.
{modifier} = the modifier prefix.
{actualamount} = (only works for - modifier) the actual amount lost.
NOTE: This is for total experience points, for experience levels use @modlevel
NOTE: This flag does not check if player has enough experience when subtracting! Use in combination with @needexp if you want to check.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@modexp 25 // gives 25 experience to crafter
@modexp +25 // exactly the same as above
@modexp -50 | <red>You lost {amount} exp! // takes at most 50 experience from crafter, if he does not have that amount it will be set to 0.
@modexp = 0 | <red>You lost all your experience! // sets crafter experience to 0, that space is valid there too.
Aliases: @expmod, @modxp, @xpmod, @exp, @xp, @giveexp, @givexp, @takeexp, @takexp
^ Contents
@modlevel [modifier]<number> | [craft message]
RecipeResult
Modifies crafter's level.
Using this flag more than once will overwrite the previous one.
The '[modifier]' argument can be nothing at all or you can use
+ (which is the same as nothing, to add)
- (to subtract)
= (to set)
The '<number>' argument must be the amount of levels to modify.
The '[craft message]' argument is optional and can be used to overwrite the default message or you can set it to false to hide it. Message will be printed in chat.
For the craft message you can use the following arguments:
{amount} = amount defined in the flag, never has modifier prefix.
{modifier} = the modifier prefix.
{actualamount} = (only works for - modifier) the actual amount lost.
NOTE: This is for experience levels, for experience points use @modexp
NOTE: This flag does not check if player has enough levels when subtracting! Use in combination with @needlevel if you want to check.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@modlevel 1 // gives 1 level to crafter
@modlevel +1 // exactly the same as above
@modlevel -2 | <red>You lost {amount} levels. // takes at most 2 levels from crafter, if he does not have that amount it will be set to 0.
@modlevel = 0 | <red>You've been set to level 0! // sets crafter's level to 0, that space is valid there too.
Aliases: @levelmod, @setlevel, @level
^ Contents
@modmoney [modifier]<float number> | [fail message]
RecipeResult
Modifies crafter's money.
Using this flag more than once will overwrite the previous one.
The '[modifier]' argument can be nothing at all or you can use
+ (which is the same as nothing, to add)
- (to subtract)
= (to set)
The '<number>' argument must be the amount of money to modify.
The '[fail message]' argument is optional and can be used to overwrite the default message or you can set it to false to hide it. Message will be printed in chat.
For the fail message you can use the following arguments:
{amount} = amount defined in the flag, never has modifier prefix.
{modifier} = the modifier prefix.
NOTE: Vault with a supported economy plugin is required for this flag to work.
NOTE: This flag does not check if player has enough money when subtracting! Use in combination with @needmoney if you want to check.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@modmoney 0.5 // gives 0.5 currency or 50 minor currency money to crafter
@modmoney +0.5 // exactly the same as above
@modmoney -2.5 | <red>You lost {money}! // takes at most 2.5 currency from crafter, if he does not have that amount it will be set to 0.
@modmoney = 0 | <red>You lost all your money! // sets crafter's money to 0, that space is valid there too.
Aliases: @moneymod, @setmoney, @money
^ Contents
@monsterspawner <entity type> | [arguments]
IngredientResult
Sets the entity type that will be spawned from the spawner.
The <entity type> argument must be an entity type name, see name index.html#entitytype
Optionally you can add more arguments separated by | character in any order:
delay = (default 20) initial delay in ticks, -1 will default to a random value between min delay and max delay
mindelay = (default 200) Sets the min spawn delay (in ticks)
maxdelay = (default 800) Sets the max spawn delay (in ticks)
maxnearbyentities = (default 6) Sets the max number of similar entities that are allowed to be within spawning range.
playerrange = (default 16) Sets the maximum distance (squared) a player can be in order for this spawner to be active. (0 is always active if players are online)
spawnrange = (default 4) Sets the radius around which the spawner will attempt to spawn mobs in.
spawncount = (default 4) Sets how many mobs attempt to spawn.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@monsterspawner creeper
@monsterspawner horse
Aliases: @spawner, @mobspawner
^ Contents
@needexp <min or min-max> | [message]
RecipeResult
Checks if crafter has at least 'min' experience and optionally at most 'max' experience.
Using this flag more than once will overwrite the previous one.
Optionally you can overwrite the fail message or you can use 'false' to hide it.
In the message the following variables can be used:
{exp} = exp or exp range.
{minexp} = defined min exp range.
{maxexp} = defined max exp range.
{playerexp} = player's current experience.
NOTE: This is for total experience points, for experience levels use @needlevel
Setting to 'false' or 'remove' will disable the flag.
Examples:
@needexp 100 // player needs to have at least 100 experience to craft
@needexp 250-250 // player needs to have exactly 250 experience to craft
@needexp 0-500 // player can only craft if he has between 0 and 500 experience
@needexp 1000 | <red>Need {exp} exp!
Aliases: @needxp, @reqexp, @expreq, @reqxp, @xpreq
^ Contents
@needlevel <min or min-max> | [fail message]
RecipeResult
Checks if crafter has at least 'min' levels and optionally at most 'max' levels.
Using this flag more than once will overwrite the previous one.
Optionally you can overwrite the fail message or you can use 'false' to hide it.
In the message the following variables can be used:
{level} = level or level range
{minlevel} = defined min level range.
{maxlevel} = defined max level range.
NOTE: This is for experience levels, for experience points use @needexp or for world height use @height.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@needlevel 1 // Requires a minimum level of 1
@needlevel 5-5 // Requires exactly level 5
@needlevel 25-100 | <red>Need level 25 to 100!
Aliases: @reqlevel, @levelreq
^ Contents
@needmoney <min or min-max> | [fail message]
RecipeResult
Checks if crafter has at least 'min' money and optionally at most 'max' money.
Using this flag more than once will overwrite the previous one.
Optionally you can overwrite the fail message or you can use 'false' to hide it.
In the message the following variables can be used:
{money} = money or money range
{minmoney} = defined min money range.
{maxmoney} = defined max money range.
{fmoney} = money or money range; formatted with currency.
{fminmoney} = defined min money range; formatted with currency.
{fmaxmoney} = defined max money range; formatted with currency.
NOTE: Vault with a supported economy plugin is required for this flag to work.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@needmoney 0.25
@needmoney 0.1 - 1000 | <red>Need {money}!
Aliases: @reqmoney, @moneyreq
^ Contents
@noresult
Result
Prevents the result item from being crafted.
Useful when giving items through @command or providing non-item results, such as @modexp.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@noresult
^ Contents
@ominousbottleitem <amplifier>
IngredientResult
Sets the amplifier amount for an Ominous Bottle's bad omen effect
Value must be between 0 and 4
Setting to 'false' or 'remove' will disable the flag.
Examples:
@ominousbottleitem 4
Aliases: @ominousbottle
^ Contents
@override [true or false]
Recipe
Overwrites an existing recipe from vanilla Minecraft or other plugins/mods.
The recipe definition must have the exact ingredients of the recipe you want to overwrite.
You may set whatever result(s) you want and add any other flags, this flag allows RecipeManager to take control over that recipe.
If you don't know the exact ingredients you can use 'rmextract' command to extract all existing recipes in RecipeManager format.
Value is optional, if value is not specified it will just be enabled.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@override
Aliases: @edit, @overwrite, @supercede, @replace
^ Contents
@permission [!]<permission>, [...] | [fail message]
RecipeResult
Makes the recipe or item require the crafter to have a permission.
Using this flag more than once will add more permissions, the player must have at least one to allow crafting.
The '<permission>' argument must be a permission node, regardless if it exists or not.
Adding ! character as prefix to individual permission nodes will do the opposite check, if crafter has permission it will not craft.
You can also specify more permissions separated by , character.
Optionally you can specify a failure message that will be used on the specific permission(s) defined.
The messages can have the following variables:
{permission} = permission that was not found or was found and it's unallowed.
{permissions} = a comma separated list of the allowed or unallowed permission nodes.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@permission ranks.vip
@permission !jobs.builder | <red>Builders can't use this!
@permission jobs.farmer, jobs.trader | <red>You must be a farmer or trader!
@permission ! ranks.newbs, ! ranks.newbies | <yellow>Noobs can't use this. // valid with spaces too
Aliases: @permissions, @perm
^ Contents
@potioneffect <effect type> | [arguments]
@potioneffect clear
RecipeResult
Adds potion effects to crafter.
This flag can be used more than once to add more effects.
Using 'clear' will remove all potion effects from player before adding any defined ones.
The <effect type> argument must be an effect type, see name index.html#potioneffect
Optionally you can add more arguments separated by | character in any order:
duration <float> = (default 1.0) potion effect duration in seconds, only works on non-instant effect types.
amplifier <num> = (default 0) potion effect amplifier.
ambient [false] = (default true) makes the effect produce more, translucent, particles.
!ambient = equivalent to 'ambient false'
particles [false] = (defaults true) display particles.
!particles = equivalent to 'particles false'
icon [false] = (defaults true) show the effect icon.
!icon = equivalent to 'icon false'
Setting to 'false' or 'remove' will disable the flag.
Examples:
@potioneffect clear // remove all player's potion effects beforehand
@potioneffect heal
@potioneffect blindness | duration 60 | amplifier 5
@potioneffect poison | ambient | amplifier 666 | duration 6.66
Aliases: @potionfx
^ Contents
@potionitem <basic effect>
@potionitem custom <custom effect>
IngredientResult
Builds a potion item, only works with POTION item.
There are 2 types of potions... basic potions which have 1 effect and custom potions which can have multiple effects.
Building a basic potion:
Instead of <basic effect> argument you must enter a series of arguments separated by | character, in any order.
Arguments for basic effect:
type <potion type> = Type of potion, see name index.html#potiontype
color <red> <green> <blue> = (optional) Sets the base color. Colors must be 3 numbers ranged from 0 to 255, the red, green and blue channels.
splash = (optional) Throwable/breakable potion instead of drinkable
lingering = (optional) Lingering potion instead of drinkable
Building a custom potion requires adding individual effects:
A basic potion still affects the custom potion like the following:
- If no basic potion is defined the bottle will look like 'water bottle' with no effects listed, effects still apply when drank
- Basic potion's type affects bottle liquid color
- Basic potion's splash still affects if the bottle is throwable instead of drinkable
- The first custom effect added is the potion's name, rest of effects are in description (of course you can use @name to change the item name)
Once you understand that, you may use @potion custom as many times to add as many effects you want.
Similar syntax to basic effect, arguments separated by | character, can be in any order after the effect type.
Arguments for custom effect:
<effect type> = (REQUIRED) Type of potion effect, see name index.html#potioneffect
duration <float> = (default 1.0) Duration of the potion effect in seconds (does not work on instant potions effects such as HEAL and HARM)
amplifier <number> = (default 0) Amplify the effects of the potion (e.g. 2 = <PotionName> III, numbers after potion's max level will display potion.potency.number instead)
ambient [false] = (default true) makes the effect produce more, translucent, particles.
!ambient = equivalent to 'ambient false'
particles [false] = (defaults true) display particles.
!particles = equivalent to 'particles false'
icon [false] = (defaults true) show the effect icon.
!icon = equivalent to 'icon false'
Setting to 'false' or 'remove' will disable the flag.
Examples:
@potionitem type FIRE_RESISTANCE // basic fire resistance potion
// advanced potion example:
@potionitem type POISON | splash | color 255 128 0 // set the bottle design and set it as splash with a custom color
@potionitem custom WITHER | duration 10 // add wither effect
@potionitem custom BLINDNESS | duration 2.5 | amplifier 5 // add blindness effect
Aliases: @potion
^ Contents
@rarity <rarity>
IngredientResult
Sets the item's rarity
Rarity values: common, uncommon, rare, epic
Setting to 'false' or 'remove' will disable the flag.
Examples:
@rarity epic // Sets the rarity to epic with a light purple name
@rarity uncommon // Sets the rarity to uncommon with a yellow name
^ Contents
@remove [true or false]
Recipe
Removes an existing recipe that was added by vanilla Minecraft or other plugins/mods.
The recipe definition must have the exact ingredients of the recipe you want to overwrite.
Results and smelt time will be ignored and you don't have to delete them if you want to keep them for later.
If you don't know the exact ingredients you can use 'rmextract' command to extract all existing recipes in RecipeManager format.
Value is optional, if value is not specified it will just be enabled.
This can't be used along with @override flag.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@remove
Aliases: @delete
^ Contents
@repaircost <text or false> | prepareLore [message]
IngredientResult
Changes result's repair cost when repaired in an anvil.
prepareLore [message] sets a lore message that will display when preparing the recipe.
Setting message to true will use the default message: flag.repaircost.preparelore
For the prepare lore you can use the following arguments:
{cost} = the repair cost
Allows quotes to prevent spaces being trimmed.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@repaircost 1 // Sets the default repair cost to 1
@repaircost 25 // Sets the default repair cost to 25
^ Contents
@restrict [fail message]
Recipe
Restricts the recipe for everybody.
This is the player-friendly version of @remove because crafter gets a message when trying to craft the recipe.
Optionally you can overwrite the default restrict message.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@restrict
@restrict <red>Access denied!
Aliases: @disable, @denied, @deny
^ Contents
@secret [true or false]
RecipeResult
Hides the recipe or result from common info sources.
Recipes are hidden from commands, books, etc.
Results are also hidden from commands, books and most importantly from multiresult item display.
This also means recipes/results won't give out any fail craft reasons!
Setting to 'false' or 'remove' will disable the flag.
Examples:
@secret
^ Contents
@setblock <block material>:[data] | [arguments]
RecipeResult
Changes the workbench/furnace/block-at-player into other block type.
Using this flag more than once will overwrite the previous flag.
Replace '<block material>' with a block material (not item!), see name index.html#material
Optionally you can define a data value which defines its skin, direction and other stuff, see Minecraft Wiki / Data Values
You can also use aliases for materials and data values too.
Additionally you can define a set of arguments separated by | character:
drop = breaks the existing block and drops its item.
noinv [failmsg] = prevent inventory crafting, if this is not set, the flag will set the block at player location too; optionally you can overwrite the failure message for this condition.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@setblock gold_block
@setblock planks:jungle | noinv // set to jungle wood planks and prevent inventory crafting
@setblock air | drop | noinv <red>Only workbench! // simulate block break
Aliases: @changeblock
^ Contents
@skullowner <uuid>
@skullowner <name>
@skullowner textureurl <url>
@skullowner <name> | textureurl <url>
@skullowner <uuid> | textureurl <url>
IngredientResult
Sets the human skull's owner to apply the skin.
If you set it to '{player}' then it will use crafter's name.
For texture, you can reference https://minecraft-heads.com/, https://mineskin.org/ or any other Minecraft head repository
You can only use textures that are located on the Minecraft texture server (https://textures.minecraft.net/texture/). Each of the above sites should be able to provide those
NOTE: You should exclude the base texture url in the arguments
Example texture url: https://textures.minecraft.net/texture/c0b8b5889ee1c6388dc6c2c5dbd70b6984aefe54319a095e64db7638097b821
Value you'd use: c0b8b5889ee1c6388dc6c2c5dbd70b6984aefe54319a095e64db7638097b821
Setting to 'false' or 'remove' will disable the flag.
Examples:
@skullowner Notch
@skullowner {player}
@skullowner textureurl c0b8b5889ee1c6388dc6c2c5dbd70b6984aefe54319a095e64db7638097b821 // Jam texture
Aliases: @skullitem, skull, head
^ Contents
@sound <sound> | [arguments]
RecipeResult
Plays a sound at crafting location.
Using this flag more than once will overwrite the previous flag.
The <sound> argument must be a sound name, see name index.html#sound
Optionally you can specify some arguments separated by | character:
volume <0.0 to 100.0> = (default 1.0) sound volume, if exceeds 1.0 it extends range, each 1.0 extends range by about 10 blocks.
pitch <0.0 to 4.0> = (default 0.0) sound pitch value.
player = (default not set) if set it will only play the sound to the crafter.
You can specify these arguments in any order and they're completely optional.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@sound level_up
@sound wolf_howl | volume 5 // can be heard loudly at 50 blocks away
@sound portal_travel | player | volume 0.65 | pitch 3.33
Aliases: @playsound
^ Contents
@spawnparticle <particle> | [arguments]
RecipeResult
Spawn a particle at crafting location
This flag can be used more than once to spawn more particles.
The <particle> argument must be a particle name, see name index.html#particle
Optionally you can specify some arguments separated by | character:
offset <x> <y> <z> = (default: 0.5 1.0 0.5) Offset positioning of the particle relative to the block/player crafting. Allows doubles (0.0)
randomoffset <x> <y> <z> = (default: .25 .25 .25) Random offset of the particle relative to the block/player crafting. Allows doubles (0.0)
count <amount> = How many particles are spawned
extra <value> = Used to set extra data for certain particles. For example, speed. Allows doubles (0.0)
You can specify these arguments in any order and they're completely optional.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@spawnparticle
@spawnparticle heart | count 3
@spawnparticle smoke_normal | count 5
@spawnparticle lava | count 20 | randomoffset 0.5 1 .5 | offset 0 2
Aliases: @particle
^ Contents
@storeenchantment <arguments>
Result
Stores the enchantments from items into the resulting enchanted book
If you want to apply usable enchantments to an item, use: @applyenchantment
Using this flag more than once will overwrite the previous one.
As '<arguments>' you must define at least one feature to copy from the ingredient to the result.
Arguments can be one or more of the following, separated by | character:
ingredientaction <action> = (default largest) merge action for all of the ingredients
resultaction <action> = (default largest) merge action applied to the result
ignorelevel = Ignore enchantment level restrictions
maxlevel <level> = Restrict the maximum level
onlybooks = Only copies enchantments from Enchanted Books. Without this, all item enchantments will be copied
onlyitems = Only copies enchantments from items with enchantments. Without this, all enchanted books will be copied as well
onlybooks and onlyitems are mutually exclusive. If you use one, the other is set to false. Using both will set the last defined.
Actions include:
smallest = Use the smallest of the two enchantments if two are merged (Sharpness I + Sharpness III = Sharpness I)
largest = Use the largest of the two enchantments if two are merged (Sharpness I + Sharpness III = Sharpness III)
combine = Add the enchantment levels together (Sharpness I + Sharpness III = Sharpness IV)
anvil = Combine enchantments similar to anvils (Sharpness I + Sharpness II = Sharpness II) and (Sharpness II + Sharpness II = Sharpness III)
Setting to 'false' or 'remove' will disable the flag.
Examples:
@storeenchantment
@storeenchantment resultaction combine // Combines the levels with the resulting item's enchants
@storeenchantment ingredientaction combine | ignorelevels | onlyitems // Combines all ingredients levels from items while allowing higher than vanilla allowed enchants
Aliases: @storeenchant, @storeenchantments, @storeenchants
^ Contents
@summon <type> | [arguments]
RecipeResult
Summons a living entity.
Using this flag more than once will add more entities.
The <type> argument can be a living entity type, you can find all entity types here: name index.html#entitytype
Optionally you can add some arguments separated by | character, those being:
adult = forces entity to spawn as an adult, works with animals and villagers (works opposite of baby).
agelock = prevent the entity from maturing or getting ready for mating, works with animals and villagers.
allayCanDuplicate [true/false] = sets whether the allay can duplicate. Default is true.
allayDuplicateCooldown <ticks> = sets the cooldown (in ticks) before the allay can duplicate again. Default is 0.
angry = makes entity angry, only works for wolves and pigzombies; you can't use 'pet' with this.
arrowcooldown <ticks> = sets the ticks until the next arrow leaves the entity's body.
arrowsinbody <amount> = sets the number of arrows in the entity's body.
axolotl <variant> = sets the axolotl variant, available values: lucy, wild, gold, cyan, blue
axolotlplayingdead = sets the axolotl to be playing dead.
baby = spawn entity as a baby, works with animals, villagers and zombies (works opposite of adult).
beeanger <ticks> = sets the anger level to the number of ticks the bee will remain angry for.
beecannotenterhiveticks <ticks> = sets the ticks the bee cannot enter a hive for.
beehasnectar = sets the bee to have nectar.
beehasstung = sets if the bee has stung.
cat <type> = cat type, available values: tabby, black, red, siamese, british_shorthair, calico, persian, ragdoll, white, jellie, all_black
chance <0.01-100>% = chance of the entity to spawn, this value is for individual entities.
chest <item> [drop%] = equip an item on the entity's chest with optional drop chance.
color <dye> = sets the color of animal, only works for sheep and pet wolf/cats.
Values: name index.html#dyecolor
feet <item> [drop%] = equip an item on the entity's feet with optional drop chance.
fox <type> = set the fox type, values: red, snow
foxcrouching = set the fox to be crouching
foxfirsttrustedplayer <uuid or player> = set the fox's first trusted player. If set to 'player', the crafter will be used.
foxsecondtrustedplayer <uuid or player> = set the fox's second trusted player. If set to 'player', the crafter will be used.
foxsleeping = set the fox to be sleeping
freezeticks <ticks> = sets the entity's current freeze ticks (amount of ticks the entity has been in powdered snow).
frog <variant> = sets the frog variant, values: temperate, warm, cold
glowsquiddarkticksremaining <ticks> = sets the number of dark ticks that a glow squid has remaining.
goathornleft <true or false> = sets if the goat has a left horn or not.
goathornright <true or false> = set if the goat has a right horn or not.
goatscreaming = set the goat to be a screaming goat.
hand <item> [drop%] = equip an item on the entity's main hand with optional drop chance; for enderman it only uses material and data from the item.
head <item> [drop%] = equip an item on the entity's head with optional drop chance.
hit = crafter will fake-attack the entity to provoke it into attacking or scare it away.
haschest = adds a chest to entity (Only works on horses, forces horse to be an adult and tamed).
horsecolor <type> = set the horse color, values: white, creamy, chestnut, brown, black, gray, dark_brown
horsestyle <type> = set the horse style, values: none, white, whitefield, white_dots, black_dots
hp <health> [max] = set entity's health and optionally max health.
offhand <item> [drop%] = equip an item on the entity's offhand with optional drop chance.
invulnerable = makes the entity invulnerable.
invisible = makes the entity invisible.
jumpstrength <0.0-2.0> = sets the entity's jump strength (Only works for horses). 0 = no jump
legs <item> [drop%] = equip an item on the entity's legs with optional drop chance.
mountnext = this entity will mount the next entity definition that triggers after it.
name <text> = sets the entity's name, supports colors (<red>, &3, etc).
noai = disable the ai on entity.
nobreed = prevent the entity being able to breed, works for animals and villagers.
nocollision = disables collision with other entities.
noeffect = no spawning particle effects on entity.
nohidename = don't hide name plate when not aiming at entity.
noremove = prevents entity from being removed if nobody is near it.
num <number> = spawn more cloned entities.
onfire <time> = spawn entity on fire for <time> amount of seconds, value can be float.
pandahiddengene <type> = set the panda's hidden gene, values: normal, lazy, worried, playful, brown, weak, aggressive
pandamaingene <type> = set the panda's main gene, values: normal, lazy, worried, playful, brown, weak, aggressive
parrot <type> = set the parrot type, values: red, blue, green, cyan, gray
persistent = Makes the entity persistent
pet [nosit] = makes entity owned by crafter, only works for tameable entities, optionally specify 'nosit' to not spawn entity in sit stance.
pickup [true/false] = change if entity can pick-up dropped items.
playerirongolem = marks iron golem as player-made.
potion <type> [time] [amp] = adds potion effect on the spawned entity; this argument can be used more than once to add more effects.
type values: name index.html#potioneffect
[time] can be a decimal of duration in seconds
[amp] can be an integer that defines amplifier;
poweredcreeper = makes creeper a powered one, only works for creepers.
rabbit <type> = set the rabbit type, values: brown, white, black, black_and_white, gold, salt_and_pepper, the_killer_bunny
saddle [mount] = adds saddle on entity (forces animal to be adult), only works for pig and horse, optionally you can specify 'mount' to make crafter mount entity.
shearedsheep = sets the sheep as sheared, only works for sheep.
skeletonhorsetrapped = sets if the skeleton horse is trapped. When a player goes near the trapped horse, lightning will strike and convert it into a skeleton horseman.
skeletonhorsetrappedtime <ticks> = sets the trapped time (in ticks) of the skeleton horse. Trap time is increased every tick if skeletonhorsetrapped is also set. The horse will despawn when ticks is greater than 18000.
spread <range> = spawns entities spread within block range instead of on top of workbench or furnace. (WARNING: can be CPU intensive)
target = entity targets crafter, that means monsters attack and animals follow and the rest do nothing
tropicalfishcolor <dye> = sets the tropical fish's body color.
Values: name index.html#dyecolor
tropicalfishpattern <pattern> = sets the tropical fish's pattern.
Values: kob, sunstreak, snooper, dasher, brinely, spotty, flopper, stripey, glitter, blockfish, betty, clayfish
tropicalfishpatterncolor <dye> = sets the color of the tropical fish's pattern.
Values: name index.html#dyecolor
villager <type> = set the villager profession
Values: none, armorer, butcher, cartographer, cleric, farmer, fisherman, fletcher, leatherworker, librarian, mason, nitwit, shepherd, toolsmith, weaponsmith
visualfire = sets if the entity has visual fire (it will always appear to be on fire).
wanderingtraderdespawndelay <ticks> = sets if the despawn delay (in ticks) of a wandering trader. If ticks is less than or equal to zero, the trader will not be despawned.
wardenanger <level> = Sets the wardens anger level towards the player. Anger is an integer from 0 to 150. Once a Warden reaches 80 anger at a target it will actively pursue it.
zombiecanbreakdoors [true/false] = Sets whether the zombie can break doors.
These arguments can be used in any order and they're all optional.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@summon cow
@summon skeleton | hand bow // skeletons spawn without weapons, you need to give it one
@summon zombie | baby | chest chainmail_chestplate 25% | legs chainmail_leggings 25% | hand iron_sword 50% // baby zombie warrior
@summon sheep | color pink | name <light_purple>Pony
@summon ocelot | cat redcat | pet | potion speed 30 5
// chicken on a villager and villager on a cow:
@summon chicken | mountnext
@summon villager | mountnext
@summon cow
Aliases: @spawn, @creature, @mob, @animal
^ Contents
@suspiciousstewitem <effect type> | [arguments]
IngredientResult
Adds potion effects to a suspicious stew.
This flag can be used more than once to add more effects.
The <effect type> argument must be an effect type, see name index.html#potioneffect
Optionally you can add more arguments separated by | character in any order:
duration <float> = (default 1.0) potion effect duration in seconds, only works on non-instant effect types.
amplifier <num> = (default 0) potion effect amplifier.
ambient [false] = (default true) makes the effect produce more, translucent, particles.
!ambient = equivalent to 'ambient false'
particles [false] = (defaults true) display particles.
!particles = equivalent to 'particles false'
icon [false] = (defaults true) show the effect icon.
!icon = equivalent to 'icon false'
Setting to 'false' or 'remove' will disable the flag.
Examples:
@suspiciousstewitem heal
@suspiciousstewitem blindness | duration 60 | amplifier 5
@suspiciousstewitem poison | ambient | amplifier 666 | duration 6.66
Aliases: @suspicioussoupitem, @suspiciousstew, @suspicioussoup
^ Contents
@temperature [operator]<number> | [fail message]
RecipeResult
Checks if the crafter or furnace has at least 'min' temperature unless [operator] is set.
Using this flag more than once will overwrite the previous one.
The '[operator]' argument can be nothing at all or you can use >= (which is the same as nothing, to check for greater than or equal), <= (less than or equal), > (greater), or < (less than).
The '<number>' argument must be the temperature you want to check against. Uses doubles, meaning 1 and 1.0 are valid numbers.
The '[operator]<number>' combination can be used multiple times when separated by a comma. In that case, all checks must be successful
Optionally you can overwrite the fail message or you can use 'false' to hide it.
In the message the following variables can be used:
{temperature} = temperature conditions
{actual} = the actual temperature player or furnace is at
Setting to 'false' or 'remove' will disable the flag.
Examples:
@temperature < 0 // Must be in an icy biome
@temperature 1.2 // Must be in a hot biome, such as a desert or savanna
@temperature >= 1.2 // Equivalent to the above example
@temperature >= .15, <= .95 // Must be within a temperature where it can rain
Aliases: @temp
^ Contents
@tropicalfishbucketitem <arguments> | [...]
IngredientResult
Customize a tropical fish bucket
Arguments can be one or more of the following, separated by | character:
bodycolor <dyecolor> = (default largest) merge action for all of the ingredients
pattern <pattern> = (default largest) merge action applied to the result
patterncolor <dyecolor> = Ignore enchantment level restrictions
<dyecolor> values: white, orange, magenta, light_blue, yellow, lime, pink, gray, light_gray, cyan, purple, blue, brown, green, red, black
<pattern> values: kob, sunstreak, snooper, dasher, brinely, spotty, flopper, stripey, glitter, blockfish, betty, clayfish
Setting to 'false' or 'remove' will disable the flag.
Examples:
@tropicalfishbucketitem bodycolor blue | pattern dasher
Aliases: @tropicalfishbucket, @fishbucket
^ Contents
@weather <type>, [type] | [fail message]
RecipeResult
Sets the weather type(s) required to allow crafting.
Using this flag more than once will overwrite the previous one.
The 'type' argument can be:
clear = clear skies, no precipitation.
downfall = precipitation (rain/snow depends on biome).
thunder = precipitation + thundering.
You can set more than one type separated by , character, but setting all of them is pointless.
Optionally you can set the 'fail message' argument to overwrite the failure message or set it to 'false' to hide it.
In the fail message you can use the following variables:
{weather} = the weather type required.
NOTE: If you need to check if it's raining or snowing then use the @temperature flag.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@weather downfall // works only if it's raining peacefully.
@weather clear, thunder | <red>To be struck by lightning... or to be not.
^ Contents
@world [!][~]<world>, [...] | [fail message]
RecipeResult
Makes the recipe or item work only in certain worlds.
Using this flag more than once will add more worlds.
The '<world>' argument can be a world name.
Adding a ! character as prefix to individual worlds will do the opposite check, will not craft in specified world.
You should require or disallow worlds, using both would be logically pointless.
Adding a ~ character as prefix to individual worlds will allow a partial match.
Any world that contains the partial match will be allowed or disallowed.
Optionally you can specify a failure message that will be used on the specific world(s) defined.
The messages can have the following variables:
{world} = current world.
{worlds} = a comma separated list of the required or unallowed worlds.
Setting to 'false' or 'remove' will disable the flag.
Examples:
@world world // only allows 'world'
@world !world_nether // disallows 'world_nether'
@world world1, world2, world3 | <red>Need to be in world 1, 2 or 3! // requires one of the 3 worlds
@world ~hardcore // Will match any world including hardcore in it's name, (ex: world_hardcore, hardcore_parkour)
@world !~hardcore // Disallows any worlds with hardcore in it's name
Aliases: @needworld, @worlds